#ifndef __drm_hdmi_page_filp_h__
#define __drm_hdmi_page_filp_h__

#define _GNU_SOURCE
#include <errno.h>
#include <fcntl.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/mman.h>
#include <time.h>
#include <unistd.h>
#include <xf86drm.h>
#include <xf86drmMode.h>
#include <drm_fourcc.h>
#include <signal.h>

struct drm_hdmi_device {
	uint32_t width;			//显示器的宽的像素点数量
	uint32_t height;		//显示器的高的像素点数量
	uint32_t pitch;			//每行占据的字节数
   uint32_t offsets[4];
	uint32_t handle;		//drm_mode_create_dumb的返回句柄
	uint32_t size;			//显示器占据的总字节数
	uint32_t *vaddr;		//mmap的首地址
	uint32_t fb_id;			//创建的framebuffer的id号
	struct drm_mode_create_dumb create ;	//创建的dumb
 	struct drm_mode_map_dumb map;			//内存映射结构体
};

#define RED 0XFF0000
#define GREEN 0X00FF00
#define BLUE 0X0000FF

static int drm_hdmi_create_fb(struct drm_hdmi_device *bo);
static void drm_hdmi_destroy_fb(struct drm_hdmi_device *bo);
int drm_hdmi_init(uint32_t * width,uint32_t * height);
void drm_hdmi_exit();

#endif

